﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace SimpleNotify.Service.Contracts
{
    [ServiceContract(
        CallbackContract= typeof(INotifyCallbackContract),
        SessionMode = SessionMode.Required)]
    public interface IService
    {
        [OperationContract(IsOneWay = false)]
        bool Subscribe(string clientName);

        [OperationContract(IsOneWay = false)]
        string[] GetSubscribers();

        [OperationContract(IsOneWay = false)]
        PushResult PushMessageToClient(string clientToNotify, string title, string text, NotificationType type, string data);

        [OperationContract(IsOneWay=false)]
        PushResult[] PushMessageToMany(string[] clientsToNotify, string title, string text, NotificationType type, string data);
    }
}
